package com.gateway.plugin.base.convert;

import com.gateway.common.dto.route.FilterData;
import com.gateway.common.dto.route.PredicateData;
import com.gateway.common.dto.route.RouteData;
import com.gateway.common.dto.sync.RouteFilterSyncData;
import com.gateway.common.dto.sync.RoutePredicateSyncData;
import com.gateway.common.dto.sync.RouteSyncData;

/**
 * @program: api-gateway
 * @description:
 * @author: YuKai Fan
 * @create: 2025/2/6 10:45
 **/
public interface RouteDataConvert {

    /**
     * convert
     * @param routeSyncData the route sync data
     * @return
     */
    RouteData apply(RouteSyncData routeSyncData);

    /**
     * convert
     * @param routeFilterSyncData
     * @return
     */
    FilterData apply(RouteFilterSyncData routeFilterSyncData);


    /**
     * convert
     * @param routePredicateSyncData
     * @return
     */
    PredicateData apply(RoutePredicateSyncData routePredicateSyncData);
}
